﻿using System;
using System.Linq;

class ArrayCalculator
{
    // 使用元组结构返回四个统计量（最大值、最小值、平均值、总和）
    public static (int max, int min, double average, int sum) Calculate(int[] numbers)
    {
        // 异常处理：空数组或null的情况 
        if (numbers == null || numbers.Length == 0)
        {
            throw new ArgumentException("数组不能为空且必须包含至少一个元素");
        }

        // 初始化统计量（设置第一个元素为初始值）
        int currentMax = numbers[0];
        int currentMin = numbers[0];
        int totalSum = 0;

        // 单次遍历优化算法（时间复杂度O(n)）
        foreach (int num in numbers)
        {
            // 动态更新最大值 
            if (num > currentMax) currentMax = num;

            // 动态更新最小值 
            if (num < currentMin) currentMin = num;

            // 累加求和 
            totalSum += num;
        }

        // 计算平均值（强制转换为double避免整数除法）
        double avg = (double)totalSum / numbers.Length;

        return (currentMax, currentMin, avg, totalSum);
    }
}

class Program
{
    static void Main()
    {
        Console.WriteLine("请输入（用逗号分隔）：");

        try
        {
            string input = Console.ReadLine()?.Trim();
            int[] numbers = input.Split(',')
                .Select(s => int.Parse(s.Trim()))
                .ToArray();

            var result = ArrayCalculator.Calculate(numbers);

            // 格式化输出结果 
            Console.WriteLine($"\n统计结果：");
            Console.WriteLine($"最大值：{result.max}");        
            Console.WriteLine($"最小值：{result.min}");         
            Console.WriteLine($"平均值：{result.average:F2}");   
            Console.WriteLine($"总和：{result.sum}");         
        }
        catch (FormatException)
        {
            Console.WriteLine("错误：输入包含非数字字符");
        }
        catch (OverflowException)
        {
            Console.WriteLine("错误：输入数值超出int范围");
        }
        catch (ArgumentException ex)
        {
            Console.WriteLine($"错误：{ex.Message}");
        }
        Console.ReadLine(); 
    }

}